<?php

namespace Lims\MainBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Credit
 */
class Credit
{
    /**
     * @var integer
     */
    private $id;

    /**
     * @var string
     */
    private $balance;

    /**
     * @var \DateTime
     */
    private $beginDate;

    /**
     * @var \DateTime
     */
    private $createdDate;

    /**
     * @var string
     */
    private $description;

    /**
     * @var \DateTime
     */
    private $endDate;

    /**
     * @var string
     */
    private $initialAmount;

    /**
     * @var string
     */
    private $interestAmount;

    /**
     * @var string
     */
    private $interestBalance;

    /**
     * @var string
     */
    private $interestPercent;

    /**
     * @var boolean
     */
    private $isActive;

    /**
     * @var integer
     */
    private $statusId;

    /**
     * @var integer
     */
    private $totalAmount;

    /**
     * @var string
     */
    private $totalBalance;

    /**
     * @var \Lims\MainBundle\Entity\CreditDedication
     */
    private $dedication;

    /**
     * @var \Lims\MainBundle\Entity\CreditPaymentType
     */
    private $paymentType;

    /**
     * @var \Lims\MainBundle\Entity\CreditPaymentType
     */
    private $interestPaymentType;

    /**
     * @var \Lims\MainBundle\Entity\CreditType
     */
    private $type;

    /**
     * @var \Lims\MainBundle\Entity\Currency
     */
    private $currency;

    /**
     * @var \Lims\MainBundle\Entity\Customer
     */
    private $customer;

    /**
     * @var \Lims\MainBundle\Entity\Users
     */
    private $createdUser;

    
    /**
     *
     * @var integer
     */
    private $scheduleLength;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set balance
     *
     * @param string $balance
     * @return Credit
     */
    public function setBalance($balance)
    {
        $this->balance = $balance;

        return $this;
    }

    /**
     * Get balance
     *
     * @return string 
     */
    public function getBalance()
    {
        return $this->balance;
    }

    /**
     * Set beginDate
     *
     * @param \DateTime $beginDate
     * @return Credit
     */
    public function setBeginDate($beginDate)
    {
        $this->beginDate = $beginDate;

        return $this;
    }

    /**
     * Get beginDate
     *
     * @return \DateTime 
     */
    public function getBeginDate()
    {
        return $this->beginDate;
    }

    /**
     * Set createdDate
     *
     * @param \DateTime $createdDate
     * @return Credit
     */
    public function setCreatedDate($createdDate)
    {
        $this->createdDate = $createdDate;

        return $this;
    }

    /**
     * Get createdDate
     *
     * @return \DateTime 
     */
    public function getCreatedDate()
    {
        return $this->createdDate;
    }

    /**
     * Set description
     *
     * @param string $description
     * @return Credit
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Get description
     *
     * @return string 
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Set endDate
     *
     * @param \DateTime $endDate
     * @return Credit
     */
    public function setEndDate($endDate)
    {
        $this->endDate = $endDate;

        return $this;
    }

    /**
     * Get endDate
     *
     * @return \DateTime 
     */
    public function getEndDate()
    {
        return $this->endDate;
    }

    /**
     * Set initialAmount
     *
     * @param string $initialAmount
     * @return Credit
     */
    public function setInitialAmount($initialAmount)
    {
        $this->initialAmount = $initialAmount;

        return $this;
    }

    /**
     * Get initialAmount
     *
     * @return string 
     */
    public function getInitialAmount()
    {
        return $this->initialAmount;
    }

    /**
     * Set interestAmount
     *
     * @param string $interestAmount
     * @return Credit
     */
    public function setInterestAmount($interestAmount)
    {
        $this->interestAmount = $interestAmount;

        return $this;
    }

    /**
     * Get interestAmount
     *
     * @return string 
     */
    public function getInterestAmount()
    {
        return $this->interestAmount;
    }

    /**
     * Set interestBalance
     *
     * @param string $interestBalance
     * @return Credit
     */
    public function setInterestBalance($interestBalance)
    {
        $this->interestBalance = $interestBalance;

        return $this;
    }

    /**
     * Get interestBalance
     *
     * @return string 
     */
    public function getInterestBalance()
    {
        return $this->interestBalance;
    }

    /**
     * Set interestPercent
     *
     * @param string $interestPercent
     * @return Credit
     */
    public function setInterestPercent($interestPercent)
    {
        $this->interestPercent = $interestPercent;

        return $this;
    }

    /**
     * Get interestPercent
     *
     * @return string 
     */
    public function getInterestPercent()
    {
        return $this->interestPercent;
    }

    /**
     * Set isActive
     *
     * @param boolean $isActive
     * @return Credit
     */
    public function setIsActive($isActive)
    {
        $this->isActive = $isActive;

        return $this;
    }

    /**
     * Get isActive
     *
     * @return boolean 
     */
    public function getIsActive()
    {
        return $this->isActive;
    }

    /**
     * Set statusId
     *
     * @param integer $statusId
     * @return Credit
     */
    public function setStatusId($statusId)
    {
        $this->statusId = $statusId;

        return $this;
    }

    /**
     * Get statusId
     *
     * @return integer 
     */
    public function getStatusId()
    {
        return $this->statusId;
    }

    /**
     * Set totalAmount
     *
     * @param integer $totalAmount
     * @return Credit
     */
    public function setTotalAmount($totalAmount)
    {
        $this->totalAmount = $totalAmount;

        return $this;
    }

    /**
     * Get totalAmount
     *
     * @return integer 
     */
    public function getTotalAmount()
    {
        return $this->totalAmount;
    }

    /**
     * Set totalBalance
     *
     * @param string $totalBalance
     * @return Credit
     */
    public function setTotalBalance($totalBalance)
    {
        $this->totalBalance = $totalBalance;

        return $this;
    }

    /**
     * Get totalBalance
     *
     * @return string 
     */
    public function getTotalBalance()
    {
        return $this->totalBalance;
    }

    /**
     * Set dedication
     *
     * @param \Lims\MainBundle\Entity\CreditDedication $dedication
     * @return Credit
     */
    public function setDedication(\Lims\MainBundle\Entity\CreditDedication $dedication = null)
    {
        $this->dedication = $dedication;

        return $this;
    }

    /**
     * Get dedication
     *
     * @return \Lims\MainBundle\Entity\CreditDedication 
     */
    public function getDedication()
    {
        return $this->dedication;
    }

    /**
     * Set paymentType
     *
     * @param \Lims\MainBundle\Entity\CreditPaymentType $paymentType
     * @return Credit
     */
    public function setPaymentType(\Lims\MainBundle\Entity\CreditPaymentType $paymentType = null)
    {
        $this->paymentType = $paymentType;

        return $this;
    }

    /**
     * Get paymentType
     *
     * @return \Lims\MainBundle\Entity\CreditPaymentType 
     */
    public function getPaymentType()
    {
        return $this->paymentType;
    }

    /**
     * Set interestPaymentType
     *
     * @param \Lims\MainBundle\Entity\CreditPaymentType $interestPaymentType
     * @return Credit
     */
    public function setInterestPaymentType(\Lims\MainBundle\Entity\CreditPaymentType $interestPaymentType = null)
    {
        $this->interestPaymentType = $interestPaymentType;

        return $this;
    }

    /**
     * Get interestPaymentType
     *
     * @return \Lims\MainBundle\Entity\CreditPaymentType 
     */
    public function getInterestPaymentType()
    {
        return $this->interestPaymentType;
    }

    /**
     * Set type
     *
     * @param \Lims\MainBundle\Entity\CreditType $type
     * @return Credit
     */
    public function setType(\Lims\MainBundle\Entity\CreditType $type = null)
    {
        $this->type = $type;

        return $this;
    }

    /**
     * Get type
     *
     * @return \Lims\MainBundle\Entity\CreditType 
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Set currency
     *
     * @param \Lims\MainBundle\Entity\Currency $currency
     * @return Credit
     */
    public function setCurrency(\Lims\MainBundle\Entity\Currency $currency = null)
    {
        $this->currency = $currency;

        return $this;
    }

    /**
     * Get currency
     *
     * @return \Lims\MainBundle\Entity\Currency 
     */
    public function getCurrency()
    {
        return $this->currency;
    }

    /**
     * Set customer
     *
     * @param \Lims\MainBundle\Entity\Customer $customer
     * @return Credit
     */
    public function setCustomer(\Lims\MainBundle\Entity\Customer $customer = null)
    {
        $this->customer = $customer;

        return $this;
    }

    /**
     * Get customer
     *
     * @return \Lims\MainBundle\Entity\Customer 
     */
    public function getCustomer()
    {
        return $this->customer;
    }

    /**
     * Set createdUser
     *
     * @param \Lims\MainBundle\Entity\Users $createdUser
     * @return Credit
     */
    public function setCreatedUser(\Lims\MainBundle\Entity\Users $createdUser = null)
    {
        $this->createdUser = $createdUser;

        return $this;
    }

    /**
     * Get createdUser
     *
     * @return \Lims\MainBundle\Entity\Users 
     */
    public function getCreatedUser()
    {
        return $this->createdUser;
    }
    /**
     * @var \Lims\MainBundle\Entity\Debtor
     */
    private $debtor;


    /**
     * Set debtor
     *
     * @param \Lims\MainBundle\Entity\Debtor $debtor
     * @return Credit
     */
    public function setDebtor(\Lims\MainBundle\Entity\Debtor $debtor = null)
    {
        $this->debtor = $debtor;

        return $this;
    }

    /**
     * Get debtor
     *
     * @return \Lims\MainBundle\Entity\Debtor 
     */
    public function getDebtor()
    {
        return $this->debtor;
    }
    
    public function getScheduleLength() {
        return $this->scheduleLength;
    }

    public function setScheduleLength($scheduleLength) {
        $this->scheduleLength = $scheduleLength;
    }
}
